package com.skiving.cloud.workflow.constants;

public class WorkflowConstants {
    public static final String WORKFLOW_BASE_URL = "/workflow";

    /**
     * 流程参数（流程编码）名称
     */
    public static final String PROCESS_VARIABLE_APPROVE_NO = "approveNo";
    /**
     * 流程参数（流程摘要）名称
     */
    public static final String PROCESS_VARIABLE_BRIEF_REPORT = "briefReport";
    /**
     * 流程参数（业务设计ID）名称
     */
    public static final String PROCESS_VARIABLE_BUSINESS_DESIGNER_ID = "businessDesignerId";
    /**
     * 流程参数（业务设计编码）名称
     */
    public static final String PROCESS_VARIABLE_BUSINESS_DESIGNER_CODE = "businessDesignerCode";
    /**
     * 常用的字符串常量名称：流程id
     */
    public static final String COMMON_STR_NAME_PROCESS_ID = "processId";
    /**
     * 常用的字符串常量名称：流程名称
     */
    public static final String COMMON_STR_NAME_PROCESS_DEF_NAME = "processDefName";
    /**
     * 常用的字符串常量名称：任务id
     */
    public static final String COMMON_STR_NAME_TASK_ID = "taskId";

    /**
     * 任务处理结果
     */
    public enum ProcessResult {
        /**
         *  退回
         */
        BACK("0"),
        /**
         * 同意
         */
        AGREE("1"),
        /**
         * 撤回
         */
        RECALL("2"),
        /**
         * 发起
         */
        START("3"),
        /**
         * 不同意
         */
        DISAGREE("4"),
        /**
         * 终止
         */
        TERMINATE("5"),
        /**
         * 结束
         */
        COMPLETE("9");

        private final String value;

        ProcessResult(String value){
            this.value = value;
        }
        public String getValue() {
            return value;
        }
    }

    /**
     * 任务处理情况
     */
    public enum  ProcessRecordState {
        /**
         * 处理中
         */
        PROCESSING("0"),
        /**
         * 已处理
         */
        PROCESSED("1");
        private final String value;
        ProcessRecordState(String value){
            this.value = value;
        }
        public String getValue() {
            return value;
        }
    }

    /**
     * 流程处理结果
     */
    public enum  ProcessInstanceState {
        /**
         * 运行中
         */
        RUN("0"),
        /**
         * 已结束
         */
        END("1"),
        /**
         * 终止
         */
        TERMINATED("2");
        private final String value;
        ProcessInstanceState(String value){
            this.value = value;
        }
        public String getValue() {
            return value;
        }
    }

    /**
     * 流程状态
     */
    public enum ProcessInstanceStateNew{
        /**
         * 运行中
         */
        ACTIVE,
        /**
         * 挂起
         */
        SUSPEND,
        /**
         * 已结束
         */
        COMPlETED,
        /**
         * 终止
         */
        INTERNALLY_TERMINATED
    }

    public enum TaskSign{
        CHECK_OUT("1"),
        CHECK_IN("0");
        private final String value;
        TaskSign(String value){
            this.value = value;
        }
        public String getValue() {
            return value;
        }
    }
}
